// 《围棋》作者版权所有。版权所有。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package exec

import (
	"io/fs"
	"syscall"
)

func init() {
	skipStdinCopyError = func(err error) bool {
		// 如果程序成功完成，忽略错误\管道破裂\错误\无数据错误将
		// 复制到stdin，否则。
		// 见第20445期。
		const _ERROR_NO_DATA = syscall.Errno(0xe8)
		pe, ok := err.(*fs.PathError)
		return ok &&
			pe.Op == "write" && pe.Path == "|1" &&
			(pe.Err == syscall.ERROR_BROKEN_PIPE || pe.Err == _ERROR_NO_DATA)
	}
}
